There is a continuing interest to encode digital audio signals in a form that imposes low information capacity requirements on transmission channels and storage media yet can convey the encoded audio signals with a high level of subjective quality. Perceptual coding systems attempt to achieve these conflicting goals by using a process that encodes and quantizes the audio signals in a manner that uses larger spectral components within the audio signal to mask or render inaudible the resultant quantizing noise. Generally, it is advantageous to control the shape and amplitude of the quantizing noise spectrum so that it lies just below the psychoacoustic masking threshold of the signal to be encoded.
A perceptual encoding process may be performed by a so called split-band encoder that applies a bank of analysis filters to the audio signal to obtain subband signals having bandwidths that are commensurate with the critical bands of the human auditory system, estimates the masking threshold of the audio signal by applying a perceptual model to the subband signals or to some other measure of audio signal spectral content, establishes quantization step sizes for quantizing the subband signals that are just small enough so that the resultant quantizing noise lies just below the estimated masking threshold of the audio signal, quantizes the subband signals according to the established quantization step sizes, and assembles into an encoded signal a plurality of symbols that represent the quantized subband signals. A complementary perceptual decoding process may be performed by a split-band decoder that extracts the symbols from the encoded signal and recovers the quantized subband signals therefrom, obtains dequantized representations of the quantized subband signals, and applies a bank of synthesis filters to the dequantized representations to generate an audio signal that is, ideally, perceptually indistinguishable from the original audio signal.
The coding processes in these coding systems often use a uniform length symbol to represent the quantized signal elements or components in each subband signal. Unfortunately, the use of uniform length symbols imposes a higher information capacity than is necessary. The required information capacity can be reduced by using non-uniform length symbols to represent the quantized components in each subband signal.
One technique for providing non-uniform length symbols is Huffman encoding of quantized subband-signal component. Typically, Huffman code tables are designed using "training signals" that have been selected to represent the signals to be encoded in actual applications. Huffman coding can provide very good coding gain if the average probability density function (PDF) of the training signals are reasonably close to the PDF of the actual signal to be encoded, and if the PDF is not flat.
If the PDF of the actual signal to be encoded is not close to the average PDF of the training signals, Huffman coding will not realize a coding gain but may incur a coding penalty, increasing the information capacity requirements of the encoded signal. This problem can be minimized by using multiple code books corresponding to different signal PDFs; however, additional storage space is required to store the code books and additional processing is required to encode the signal according to each code book and then pick the one that provides the best results.
There remains a need for a coding technique that can represent blocks of quantized subband-signal components using non-uniform length symbols within each subband, that is not dependent upon any particular PDF of component values, and can be performed efficiently using minimal computational and memory resources.